
package com.dhcc.bpm.modules.api.vo;

import org.springblade.core.mp.base.Excel;
import com.dhcc.bpm.modules.api.entity.Api;
import com.dhcc.bpm.modules.api.entity.TransformProtocol;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * @ClassName ApiStarVO
 * @Description API星级评价表视图实体类
 * @Author daina
 * @Date 2020/2/25 16:02
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ApiVO对象", description = "api表")
public class ApiVO extends Api {
	private static final long serialVersionUID = 1L;

	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "opcControlId")
	private Long opcControlId;

	@Excel(name = "controlScope")
	private String controlScope;

	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "opcProductId")
	private Long opcProductId;

	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "caseId")
	private Long caseId;

	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "opcAppId")
	private Long opcAppId;

	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "apiId")
	private Long apiId;

	@Excel(name = "appName")
	private String  appName;

	@Excel(name = "appCode")
	private String  appCode;

	@Excel(name = "testAppCode")
	private String  testAppCode;

	@Excel(name = "refreshFlag")
	private String  refreshFlag;

	@Excel(name = "env")
	private String  env;

	@Excel(name = "useFlag")
	private String  useFlag;

	@Excel(name = "uploadPath")
	private String  uploadPath;

	@Excel(name = "flowId")
	private String  flowId;

	/**
	 * word路径
	 */
	@Excel(name = "word路径")
	private String fileFullPath;

	/**
	 * word上传类型
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "word上传storageType类型")
	private Long storageType;
	/**
	 * word文件名称
	 */
	@Excel(name = "word文件fileRealname名称")
	private String fileRealname;
	/**
	 * 配置文件路径
	 */
	@Excel(name = "配置文件configFileFullPath路径")
	private String configFileFullPath;
	/**
	 * 配置文件路径
	 */
	@Excel(name = "配置文件efetMsgFullPath路径")
	private String efetMsgFullPath;
	/**
	 * 配置文件名称
	 */
	@Excel(name = "配置文件efetMsgRealname名称")
	private String efetMsgRealname;

	/**
	 * 配置文件上传类型
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "配置文件efetMsgStorageType上传类型")
	private Long efetMsgStorageType;
	/**
	 * 配置文件路径
	 */
	@Excel(name = "配置文件xmlMsgFullPath路径")
	private String xmlMsgFullPath;
	/**
	 * 配置文件名称
	 */
	@Excel(name = "配置文件xmlMsgRealname名称")
	private String xmlMsgRealname;

	/**
	 * 配置文件上传类型
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "配置文件xmlMsgStorageType上传类型")
	private Long xmlMsgStorageType;

	/**
	 * 配置文件上传类型
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "配置文件configStorageType上传类型")
	private Long configStorageType;
	/**
	 * 配置文件文件名称
	 */
	@Excel(name = "配置文件configFileRealname名称")
	private String configFileRealname;


	/**
	 * 状态集合
	 */
	@Excel(name = "状态集合")
	private List<Integer> statusList;

	/**
	 * 访问协议描述
	 */
	@Excel(name = "访问协议描述")
	private String accessProtocolDesc;
	/**
	 * 是否需要回调地址描述
	 */
	@Excel(name = "是否需要回调地址描述")
	private String isRequireCallbackUrlDesc;
	/**
	 * 安全认证类型描述
	 */
	@Excel(name = "安全认证类型描述")
	private String safeTypeDesc;
	/**
	 * 报文类型描述
	 */
	@Excel(name = "报文类型描述")
	private String messageTypeDesc;
	/**
	 * 权限等级描述
	 */
	@Excel(name = "权限等级描述")
	private String privilegeLevelDesc;
	/**
	 * 是否收费描述
	 */
	@Excel(name = "是否收费描述")
	private String isCostDesc;
	/**
	 *  响应次数
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "响应次数")
	private Long num;
	/**
	 *  成功次数
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "成功次数")
	private Long successNum;
	/**
	 *  成功率(返回百分比)
	 */
	@Excel(name = "成功率")
	private String successRate;
	/**
	 * 平均响应时间
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "平均响应时间")
	private Double responseTime;
	/**
	 * 总行数
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "总行数")
	private Long lineNum;
	/**
	 *  机构主键id
	 */
	@Excel(name = "机构主键id")
	private String orgaId;
	/**
	 *  机构编号
	 */
	@Excel(name = "机构编号")
	private String orgaCard;
	/**
	 *  类型 product--产品 sys-系统
	 */
	@Excel(name = "类型")
	private String kind;
	/**
	 *  系统主键Id
	 */
	@Excel(name = "系统主键Id")
	private String sysId;

	/**
	 *  文档
	 */
	@Excel(name = "文档")
	private String apiDoc;
	/**
	 *  回调地址
	 */
	@Excel(name = "回调地址")
	private String callbackUrl;

	/**
	 * 开始时间
	 */
	@ApiModelProperty(value = "开始时间")
	@Excel(name = "开始时间")
	private String startDate;

	/**
	 * 结束时间
	 */
	@ApiModelProperty(value = "结束时间")
	@Excel(name = "结束时间")
	private String endDate;
	/**
	 * 限流创建时间
	 */
	@ApiModelProperty(value = "限流创建时间")
	@Excel(name = "限流创建时间")
	private String flowCreateTime;
	/**
	 * 创建人
	 */
	@ApiModelProperty(value = "创建人")
	@Excel(name = "创建人")
	private String account;
	/**
	 * 产品名称
	 */
	@ApiModelProperty(value = "产品名称")
	@Excel(name = "产品名称")
	private String productName;

	/**
	 * 后端服务名称
	 */
	@Excel(name = "后端服务名称")
	private String backserviceName;
	/**
	 * 网关名称
	 */
	@Excel(name = "网关名称")
	private String gatewayName;
	/**
	 * 沙箱网关名称
	 */
	@Excel(name = "沙箱网关名称")
	private String gatewayNameTest;

	/**
	 * 查看版本标志 1表示查询
	 */
	@Excel(name = "查看版本标志")
	private int showVersion;
	/**
	 * 环境：1：东航 ，2：银行
	 */
	@Excel(name = "环境")
	private String devVersion;

	/**
	 * 协议信息
	 */
	@Excel(name = "协议信息")
	private TransformProtocol transformProtocol;

	/**
	 *  所属基础产品名称
	 */
	@Excel(name = "所属基础产品名称")
	@ApiModelProperty(value = "所属基础产品名称")
	private String baseProductName;


	/**
	 *  所属基础产品id
	 */
	private String  productId;

	/**
	 *  网关id
	 */
	private String  gatewayId;

    /**
     *  所属系统名称
     */
    private String sysName;
    /**
     *  创建人
     */
    private String userName;
    private List<Long> apiIds;

	/**
	 * xml报文配置文件路径
	 */
	@Excel(name = "配置文件xmlFileFullPath路径")
	private String xmlFileFullPath;
	/**
	 * xml报文配置文件名称
	 */
	@Excel(name = "配置文件xmlFileRealname名称")
	private String xmlFileRealname;

	/**
	 * json报文配置文件路径
	 */
	@Excel(name = "配置文件jsonFileFullPath路径")
	private String jsonFileFullPath;
	/**
	 * json报文配置文件名称
	 */
	@Excel(name = "配置文件jsonFileRealname名称")
	private String jsonFileRealname;

	/**
	 * efet报文配置文件路径
	 */
	@Excel(name = "配置文件efetFileFullPath路径")
	private String efetFileFullPath;
	/**
	 * efet报文配置文件名称
	 */
	@Excel(name = "配置文件efetFileRealname名称")
	private String efetFileRealname;

	/**
	 * kv报文配置文件路径
	 */
	@Excel(name = "配置文件kvFileFullPath路径")
	private String kvFileFullPath;
	/**
	 * kv报文配置文件名称
	 */
	@Excel(name = "配置文件kvFileRealname名称")
	private String kvFileRealname;

	/**
	 * fixed报文配置文件路径
	 */
	@Excel(name = "配置文件fixedFileFullPath路径")
	private String fixedFileFullPath;
	/**
	 * fixed报文配置文件名称
	 */
	@Excel(name = "配置文件fixedFileRealname名称")
	private String fixedFileRealname;

	/**
	 * sep报文配置文件路径
	 */
	@Excel(name = "配置文件sepFileFullPath路径")
	private String sepFileFullPath;
	/**
	 * sep报文配置文件名称
	 */
	@Excel(name = "配置文件sepFileRealname名称")
	private String sepFileRealname;
	private Integer[] statusArr;
	private String type;//upgrade 升级

	private String prdtApiId;
}
